<?php
/**
 * WebSocket 服务器
 * 
 * 用于餐饮点餐系统的实时通信，包括：
 * - 厨师端接收新订单通知
 * - 排队屏幕实时更新
 * - 用户订单状态更新
 */

// 判断是否是命令行运行
if (php_sapi_name() != 'cli') {
    die("请通过命令行运行此脚本");
}

// 加载自动加载器
require dirname(__DIR__) . '/vendor/autoload.php';
require_once dirname(__DIR__) . '/common/autoload.php';

// 导入Ratchet类
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use App\WebSocketServer;

// 设置时区
date_default_timezone_set('Asia/Shanghai');

// 输出启动信息
echo "正在启动WebSocket服务器...\n";
echo "日期时间: " . date('Y-m-d H:i:s') . "\n";
echo "-------------------------------------\n";

// 创建WebSocket服务器
$server = IoServer::factory(
    new HttpServer(
        new WsServer(
            new WebSocketServer()
        )
    ),
    8080 // 监听端口
);

echo "WebSocket服务器已启动并监听在端口 8080\n";
echo "按Ctrl+C停止服务器\n";
echo "-------------------------------------\n";

// 运行服务器
$server->run(); 